n8n 1.3.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.
Files changed (133) hide show
  1. package/dist/ActiveWebhooks.js +2 -5
  2. package/dist/ActiveWebhooks.js.map +1 -1
  3. package/dist/ActiveWorkflowRunner.js +6 -7
  4. package/dist/ActiveWorkflowRunner.js.map +1 -1
  5. package/dist/CredentialsHelper.d.ts +1 -0
  6. package/dist/CredentialsHelper.js +23 -0
  7. package/dist/CredentialsHelper.js.map +1 -1
  8. package/dist/InternalHooks.js +7 -11
  9. package/dist/InternalHooks.js.map +1 -1
  10. package/dist/PublicApi/v1/handlers/workflows/workflows.service.js +2 -2
  11. package/dist/PublicApi/v1/handlers/workflows/workflows.service.js.map +1 -1
  12. package/dist/Server.js +18 -10
  13. package/dist/Server.js.map +1 -1
  14. package/dist/UserManagement/PermissionChecker.js +2 -2
  15. package/dist/UserManagement/PermissionChecker.js.map +1 -1
  16. package/dist/WebhookHelpers.js +5 -0
  17. package/dist/WebhookHelpers.js.map +1 -1
  18. package/dist/WorkflowHelpers.d.ts +2 -2
  19. package/dist/WorkflowHelpers.js +62 -45
  20. package/dist/WorkflowHelpers.js.map +1 -1
  21. package/dist/commands/executeBatch.js +1 -4
  22. package/dist/commands/executeBatch.js.map +1 -1
  23. package/dist/commands/import/workflow.d.ts +1 -0
  24. package/dist/commands/import/workflow.js +5 -5
  25. package/dist/commands/import/workflow.js.map +1 -1
  26. package/dist/commands/worker.d.ts +0 -2
  27. package/dist/commands/worker.js +26 -5
  28. package/dist/commands/worker.js.map +1 -1
  29. package/dist/config/schema.js +1 -1
  30. package/dist/config/schema.js.map +1 -1
  31. package/dist/constants.d.ts +2 -0
  32. package/dist/constants.js +2 -0
  33. package/dist/constants.js.map +1 -1
  34. package/dist/controllers/auth.controller.d.ts +2 -2
  35. package/dist/controllers/auth.controller.js +5 -7
  36. package/dist/controllers/auth.controller.js.map +1 -1
  37. package/dist/controllers/me.controller.d.ts +3 -4
  38. package/dist/controllers/me.controller.js +12 -18
  39. package/dist/controllers/me.controller.js.map +1 -1
  40. package/dist/controllers/owner.controller.d.ts +7 -4
  41. package/dist/controllers/owner.controller.js +7 -4
  42. package/dist/controllers/owner.controller.js.map +1 -1
  43. package/dist/controllers/passwordReset.controller.d.ts +3 -6
  44. package/dist/controllers/passwordReset.controller.js +11 -14
  45. package/dist/controllers/passwordReset.controller.js.map +1 -1
  46. package/dist/controllers/tags.controller.d.ts +6 -10
  47. package/dist/controllers/tags.controller.js +10 -36
  48. package/dist/controllers/tags.controller.js.map +1 -1
  49. package/dist/controllers/users.controller.d.ts +3 -7
  50. package/dist/controllers/users.controller.js +20 -18
  51. package/dist/controllers/users.controller.js.map +1 -1
  52. package/dist/credentials/credentials.service.ee.js +2 -2
  53. package/dist/credentials/credentials.service.ee.js.map +1 -1
  54. package/dist/databases/migrations/common/1659888469333-AddJsonKeyPinData.js +2 -4
  55. package/dist/databases/migrations/common/1659888469333-AddJsonKeyPinData.js.map +1 -1
  56. package/dist/environments/sourceControl/sourceControl.service.ee.js.map +1 -1
  57. package/dist/environments/sourceControl/sourceControlImport.service.ee.js +2 -3
  58. package/dist/environments/sourceControl/sourceControlImport.service.ee.js.map +1 -1
  59. package/dist/eventbus/MessageEventBus/MessageEventBus.js +37 -4
  60. package/dist/eventbus/MessageEventBus/MessageEventBus.js.map +1 -1
  61. package/dist/eventbus/MessageEventBusWriter/MessageEventBusLogWriter.d.ts +4 -0
  62. package/dist/eventbus/MessageEventBusWriter/MessageEventBusLogWriter.js +16 -0
  63. package/dist/eventbus/MessageEventBusWriter/MessageEventBusLogWriter.js.map +1 -1
  64. package/dist/eventbus/MessageEventBusWriter/MessageEventBusLogWriterWorker.js +24 -0
  65. package/dist/eventbus/MessageEventBusWriter/MessageEventBusLogWriterWorker.js.map +1 -1
  66. package/dist/middlewares/listQuery/dtos/pagination.dto.d.ts +6 -0
  67. package/dist/middlewares/listQuery/dtos/pagination.dto.js +22 -0
  68. package/dist/middlewares/listQuery/dtos/pagination.dto.js.map +1 -0
  69. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.d.ts +7 -0
  70. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.js +55 -0
  71. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.js.map +1 -0
  72. package/dist/middlewares/listQuery/dtos/workflow.select.dto.d.ts +5 -0
  73. package/dist/middlewares/listQuery/dtos/workflow.select.dto.js +31 -0
  74. package/dist/middlewares/listQuery/dtos/workflow.select.dto.js.map +1 -0
  75. package/dist/middlewares/listQuery/filter.d.ts +3 -2
  76. package/dist/middlewares/listQuery/filter.js +32 -15
  77. package/dist/middlewares/listQuery/filter.js.map +1 -1
  78. package/dist/middlewares/listQuery/index.d.ts +1 -1
  79. package/dist/middlewares/listQuery/pagination.js +33 -11
  80. package/dist/middlewares/listQuery/pagination.js.map +1 -1
  81. package/dist/middlewares/listQuery/select.js +8 -20
  82. package/dist/middlewares/listQuery/select.js.map +1 -1
  83. package/dist/requests.d.ts +33 -18
  84. package/dist/requests.js +5 -1
  85. package/dist/requests.js.map +1 -1
  86. package/dist/services/events.service.js +2 -2
  87. package/dist/services/events.service.js.map +1 -1
  88. package/dist/services/ownership.service.d.ts +7 -3
  89. package/dist/services/ownership.service.js +13 -4
  90. package/dist/services/ownership.service.js.map +1 -1
  91. package/dist/services/tag.service.d.ts +34 -0
  92. package/dist/services/tag.service.js +121 -0
  93. package/dist/services/tag.service.js.map +1 -0
  94. package/dist/services/user.service.d.ts +19 -0
  95. package/dist/services/user.service.js +62 -0
  96. package/dist/services/user.service.js.map +1 -0
  97. package/dist/sso/saml/schema/saml-schema-assertion-2.0.xsd.js +282 -282
  98. package/dist/sso/saml/schema/saml-schema-metadata-2.0.xsd.js +335 -335
  99. package/dist/sso/saml/schema/saml-schema-protocol-2.0.xsd.js +301 -301
  100. package/dist/telemetry/index.js +1 -1
  101. package/dist/telemetry/index.js.map +1 -1
  102. package/dist/utils.d.ts +3 -0
  103. package/dist/utils.js +5 -1
  104. package/dist/utils.js.map +1 -1
  105. package/dist/workflows/workflows.controller.ee.js +5 -14
  106. package/dist/workflows/workflows.controller.ee.js.map +1 -1
  107. package/dist/workflows/workflows.controller.js +5 -5
  108. package/dist/workflows/workflows.controller.js.map +1 -1
  109. package/dist/workflows/workflows.services.d.ts +5 -5
  110. package/dist/workflows/workflows.services.ee.d.ts +1 -4
  111. package/dist/workflows/workflows.services.ee.js +2 -13
  112. package/dist/workflows/workflows.services.ee.js.map +1 -1
  113. package/dist/workflows/workflows.services.js +51 -38
  114. package/dist/workflows/workflows.services.js.map +1 -1
  115. package/dist/workflows/workflows.types.d.ts +0 -4
  116. package/oclif.manifest.json +1 -1
  117. package/package.json +8 -8
  118. package/templates/oauth-error-callback.handlebars +6 -6
  119. package/dist/TagHelpers.d.ts +0 -7
  120. package/dist/TagHelpers.js +0 -59
  121. package/dist/TagHelpers.js.map +0 -1
  122. package/dist/middlewares/listQuery/error.d.ts +0 -1
  123. package/dist/middlewares/listQuery/error.js +0 -40
  124. package/dist/middlewares/listQuery/error.js.map +0 -1
  125. package/dist/middlewares/listQuery/schema.d.ts +0 -5
  126. package/dist/middlewares/listQuery/schema.js +0 -13
  127. package/dist/middlewares/listQuery/schema.js.map +0 -1
  128. package/dist/middlewares/listQuery/workflow.schema.d.ts +0 -10
  129. package/dist/middlewares/listQuery/workflow.schema.js +0 -59
  130. package/dist/middlewares/listQuery/workflow.schema.js.map +0 -1
  131. package/dist/user/user.service.d.ts +0 -9
  132. package/dist/user/user.service.js +0 -53
  133. package/dist/user/user.service.js.map +0 -1
@@ -0,0 +1,34 @@
1
+ import { TagRepository } from '../databases/repositories';
2
+ import type { ITagWithCountDb, IWorkflowToImport } from '../Interfaces';
3
+ import type { TagEntity } from '../databases/entities/TagEntity';
4
+ import type { EntityManager, FindManyOptions, FindOneOptions } from 'typeorm';
5
+ import type { UpsertOptions } from 'typeorm/repository/UpsertOptions';
6
+ import { ExternalHooks } from '../ExternalHooks';
7
+ type GetAllResult<T> = T extends {
8
+ withUsageCount: true;
9
+ } ? ITagWithCountDb[] : TagEntity[];
10
+ export declare class TagService {
11
+ private externalHooks;
12
+ private tagRepository;
13
+ constructor(externalHooks: ExternalHooks, tagRepository: TagRepository);
14
+ toEntity(attrs: {
15
+ name: string;
16
+ id?: string;
17
+ }): TagEntity;
18
+ save(tag: TagEntity, actionKind: 'create' | 'update'): Promise<TagEntity>;
19
+ delete(id: string): Promise<import("typeorm").DeleteResult>;
20
+ findOne(options: FindOneOptions<TagEntity>): Promise<TagEntity | null>;
21
+ findMany(options: FindManyOptions<TagEntity>): Promise<TagEntity[]>;
22
+ upsert(tag: TagEntity, options: UpsertOptions<TagEntity>): Promise<import("typeorm").InsertResult>;
23
+ getAll<T extends {
24
+ withUsageCount: boolean;
25
+ }>(options?: T): Promise<GetAllResult<T>>;
26
+ sortByRequestOrder(tags: TagEntity[], { requestOrder }: {
27
+ requestOrder: string[];
28
+ }): TagEntity[];
29
+ setTagsForImport(transactionManager: EntityManager, workflow: IWorkflowToImport, tags: TagEntity[]): Promise<void>;
30
+ private hasTags;
31
+ private findOrCreateTag;
32
+ private txCreateTag;
33
+ }
34
+ export {};
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TagService = void 0;
13
+ const repositories_1 = require("../databases/repositories");
14
+ const typedi_1 = require("typedi");
15
+ const GenericHelpers_1 = require("../GenericHelpers");
16
+ const ExternalHooks_1 = require("../ExternalHooks");
17
+ let TagService = exports.TagService = class TagService {
18
+ constructor(externalHooks, tagRepository) {
19
+ this.externalHooks = externalHooks;
20
+ this.tagRepository = tagRepository;
21
+ }
22
+ toEntity(attrs) {
23
+ attrs.name = attrs.name.trim();
24
+ return this.tagRepository.create(attrs);
25
+ }
26
+ async save(tag, actionKind) {
27
+ await (0, GenericHelpers_1.validateEntity)(tag);
28
+ const action = actionKind[0].toUpperCase() + actionKind.slice(1);
29
+ await this.externalHooks.run(`tag.before${action}`, [tag]);
30
+ const savedTag = this.tagRepository.save(tag);
31
+ await this.externalHooks.run(`tag.after${action}`, [tag]);
32
+ return savedTag;
33
+ }
34
+ async delete(id) {
35
+ await this.externalHooks.run('tag.beforeDelete', [id]);
36
+ const deleteResult = this.tagRepository.delete(id);
37
+ await this.externalHooks.run('tag.afterDelete', [id]);
38
+ return deleteResult;
39
+ }
40
+ async findOne(options) {
41
+ return this.tagRepository.findOne(options);
42
+ }
43
+ async findMany(options) {
44
+ return this.tagRepository.find(options);
45
+ }
46
+ async upsert(tag, options) {
47
+ return this.tagRepository.upsert(tag, options);
48
+ }
49
+ async getAll(options) {
50
+ if (options === null || options === void 0 ? void 0 : options.withUsageCount) {
51
+ const allTags = await this.tagRepository.find({
52
+ select: ['id', 'name', 'createdAt', 'updatedAt'],
53
+ relations: ['workflowMappings'],
54
+ });
55
+ return allTags.map(({ workflowMappings, ...rest }) => {
56
+ return {
57
+ ...rest,
58
+ usageCount: workflowMappings.length,
59
+ };
60
+ });
61
+ }
62
+ return this.tagRepository.find({
63
+ select: ['id', 'name', 'createdAt', 'updatedAt'],
64
+ });
65
+ }
66
+ sortByRequestOrder(tags, { requestOrder }) {
67
+ const tagMap = tags.reduce((acc, tag) => {
68
+ acc[tag.id] = tag;
69
+ return acc;
70
+ }, {});
71
+ return requestOrder.map((tagId) => tagMap[tagId]);
72
+ }
73
+ async setTagsForImport(transactionManager, workflow, tags) {
74
+ var _a;
75
+ if (!this.hasTags(workflow))
76
+ return;
77
+ const workflowTags = workflow.tags;
78
+ const tagLookupPromises = [];
79
+ for (let i = 0; i < workflowTags.length; i++) {
80
+ if ((_a = workflowTags[i]) === null || _a === void 0 ? void 0 : _a.name) {
81
+ const lookupPromise = this.findOrCreateTag(transactionManager, workflowTags[i], tags).then((tag) => {
82
+ workflowTags[i] = {
83
+ id: tag.id,
84
+ name: tag.name,
85
+ };
86
+ });
87
+ tagLookupPromises.push(lookupPromise);
88
+ }
89
+ }
90
+ await Promise.all(tagLookupPromises);
91
+ }
92
+ hasTags(workflow) {
93
+ return 'tags' in workflow && Array.isArray(workflow.tags) && workflow.tags.length > 0;
94
+ }
95
+ async findOrCreateTag(transactionManager, importTag, tagsEntities) {
96
+ const identicalMatch = tagsEntities.find((existingTag) => existingTag.id === importTag.id &&
97
+ existingTag.createdAt &&
98
+ importTag.createdAt &&
99
+ existingTag.createdAt.getTime() === new Date(importTag.createdAt).getTime());
100
+ if (identicalMatch) {
101
+ return identicalMatch;
102
+ }
103
+ const nameMatch = tagsEntities.find((existingTag) => existingTag.name === importTag.name);
104
+ if (nameMatch) {
105
+ return nameMatch;
106
+ }
107
+ const created = await this.txCreateTag(transactionManager, importTag.name);
108
+ tagsEntities.push(created);
109
+ return created;
110
+ }
111
+ async txCreateTag(transactionManager, name) {
112
+ const tag = this.tagRepository.create({ name: name.trim() });
113
+ return transactionManager.save(tag);
114
+ }
115
+ };
116
+ exports.TagService = TagService = __decorate([
117
+ (0, typedi_1.Service)(),
118
+ __metadata("design:paramtypes", [ExternalHooks_1.ExternalHooks,
119
+ repositories_1.TagRepository])
120
+ ], TagService);
121
+ //# sourceMappingURL=tag.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.service.js","sourceRoot":"","sources":["../../src/services/tag.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { EntityManager, FindManyOptions, FindOneOptions, FindOptionsWhere } from 'typeorm';
2
+ import { User } from '../databases/entities/User';
3
+ import type { IUserSettings } from 'n8n-workflow';
4
+ import { UserRepository } from '../databases/repositories';
5
+ export declare class UserService {
6
+ private readonly userRepository;
7
+ constructor(userRepository: UserRepository);
8
+ findOne(options: FindOneOptions<User>): Promise<User | null>;
9
+ findOneOrFail(options: FindOneOptions<User>): Promise<User>;
10
+ findMany(options: FindManyOptions<User>): Promise<User[]>;
11
+ findOneBy(options: FindOptionsWhere<User>): Promise<User | null>;
12
+ create(data: Partial<User>): User;
13
+ save(user: Partial<User>): Promise<Partial<User> & User>;
14
+ update(userId: string, data: Partial<User>): Promise<import("typeorm").UpdateResult>;
15
+ getByIds(transaction: EntityManager, ids: string[]): Promise<User[]>;
16
+ getManager(): EntityManager;
17
+ updateSettings(userId: string, newSettings: Partial<IUserSettings>): Promise<import("typeorm").UpdateResult>;
18
+ generatePasswordResetUrl(instanceBaseUrl: string, token: string): string;
19
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserService = void 0;
13
+ const typedi_1 = require("typedi");
14
+ const typeorm_1 = require("typeorm");
15
+ const User_1 = require("../databases/entities/User");
16
+ const repositories_1 = require("../databases/repositories");
17
+ let UserService = exports.UserService = class UserService {
18
+ constructor(userRepository) {
19
+ this.userRepository = userRepository;
20
+ }
21
+ async findOne(options) {
22
+ return this.userRepository.findOne({ relations: ['globalRole'], ...options });
23
+ }
24
+ async findOneOrFail(options) {
25
+ return this.userRepository.findOneOrFail({ relations: ['globalRole'], ...options });
26
+ }
27
+ async findMany(options) {
28
+ return this.userRepository.find({ relations: ['globalRole'], ...options });
29
+ }
30
+ async findOneBy(options) {
31
+ return this.userRepository.findOneBy(options);
32
+ }
33
+ create(data) {
34
+ return this.userRepository.create(data);
35
+ }
36
+ async save(user) {
37
+ return this.userRepository.save(user);
38
+ }
39
+ async update(userId, data) {
40
+ return this.userRepository.update(userId, data);
41
+ }
42
+ async getByIds(transaction, ids) {
43
+ return transaction.find(User_1.User, { where: { id: (0, typeorm_1.In)(ids) } });
44
+ }
45
+ getManager() {
46
+ return this.userRepository.manager;
47
+ }
48
+ async updateSettings(userId, newSettings) {
49
+ const { settings } = await this.userRepository.findOneOrFail({ where: { id: userId } });
50
+ return this.userRepository.update(userId, { settings: { ...settings, ...newSettings } });
51
+ }
52
+ generatePasswordResetUrl(instanceBaseUrl, token) {
53
+ const url = new URL(`${instanceBaseUrl}/change-password`);
54
+ url.searchParams.append('token', token);
55
+ return url.toString();
56
+ }
57
+ };
58
+ exports.UserService = UserService = __decorate([
59
+ (0, typedi_1.Service)(),
60
+ __metadata("design:paramtypes", [repositories_1.UserRepository])
61
+ ], UserService);
62
+ //# sourceMappingURL=user.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/services/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAiC;AAEjC,qCAA6B;AAC7B,4CAAyC;AAEzC,2DAA0D;AAGnD,IAAM,WAAW,yBAAjB,MAAM,WAAW;IACvB,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D,KAAK,CAAC,OAAO,CAAC,OAA6B;QAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA6B;QAChD,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA8B;QAC5C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA+B;QAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,IAAmB;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAmB;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,IAAmB;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,WAA0B,EAAE,GAAa;QACvD,OAAO,WAAW,CAAC,IAAI,CAAC,WAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,WAAmC;QACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAExF,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,wBAAwB,CAAC,eAAuB,EAAE,KAAa;QAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,eAAe,kBAAkB,CAAC,CAAC;QAE1D,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAExC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;CACD,CAAA;sBApDY,WAAW;IADvB,IAAA,gBAAO,GAAE;qCAEoC,6BAAc;GAD/C,WAAW,CAoDvB"}