@activepieces/piece-gmail 0.10.1 → 0.10.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@activepieces/piece-gmail",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "dependencies": {
5
5
  "@sinclair/typebox": "0.34.11",
6
6
  "ai": "^6.0.0",
@@ -19,8 +19,8 @@
19
19
  "socket.io-client": "4.8.1",
20
20
  "zod": "4.1.13",
21
21
  "@activepieces/pieces-common": "0.11.2",
22
- "@activepieces/pieces-framework": "0.24.0",
23
- "@activepieces/shared": "0.32.0",
22
+ "@activepieces/pieces-framework": "0.25.0",
23
+ "@activepieces/shared": "0.33.0",
24
24
  "tslib": "2.6.2"
25
25
  },
26
26
  "resolutions": {
package/src/index.js CHANGED
@@ -8,6 +8,7 @@ const shared_1 = require("@activepieces/shared");
8
8
  const send_email_action_1 = require("./lib/actions/send-email-action");
9
9
  const new_email_1 = require("./lib/triggers/new-email");
10
10
  const new_labeled_email_1 = require("./lib/triggers/new-labeled-email");
11
+ const request_approval_in_email_1 = require("./lib/actions/request-approval-in-email");
11
12
  exports.gmailAuth = pieces_framework_1.PieceAuth.OAuth2({
12
13
  description: '',
13
14
  authUrl: 'https://accounts.google.com/o/oauth2/auth',
@@ -29,6 +30,7 @@ exports.gmail = (0, pieces_framework_1.createPiece)({
29
30
  ],
30
31
  actions: [
31
32
  send_email_action_1.gmailSendEmailAction,
33
+ request_approval_in_email_1.requestApprovalInEmail,
32
34
  (0, pieces_common_1.createCustomApiCallAction)({
33
35
  baseUrl: () => 'https://gmail.googleapis.com/gmail/v1',
34
36
  auth: exports.gmailAuth,
@@ -52,6 +54,7 @@ exports.gmail = (0, pieces_framework_1.createPiece)({
52
54
  'khaledmashaly',
53
55
  'abuaboud',
54
56
  'AdamSelene',
57
+ 'sanket-a11y',
55
58
  ],
56
59
  triggers: [new_email_1.gmailNewEmailTrigger, new_labeled_email_1.gmailNewLabeledEmailTrigger],
57
60
  auth: exports.gmailAuth,
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/gmail/src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAwE;AACxE,qEAIwC;AACxC,iDAAqD;AACrD,uEAAuE;AACvE,wDAAgE;AAChE,wEAA+E;AAElE,QAAA,SAAS,GAAG,4BAAS,CAAC,MAAM,CAAC;IACxC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,2CAA2C;IACpD,QAAQ,EAAE,qCAAqC;IAC/C,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,4CAA4C;QAC5C,OAAO;QACP,gDAAgD;QAChD,+CAA+C;KAChD;CACF,CAAC,CAAC;AAEU,QAAA,KAAK,GAAG,IAAA,8BAAW,EAAC;IAC/B,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,+CAA+C;IACxD,UAAU,EAAE;QACV,sBAAa,CAAC,aAAa;QAC3B,sBAAa,CAAC,qBAAqB;KACpC;IACD,OAAO,EAAE;QACP,wCAAoB;QACpB,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,GAAG,EAAE,CAAC,uCAAuC;YACtD,IAAI,EAAE,iBAAS;YACf,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,aAAa,EAAE,UAAW,IAA4B,CAAC,YAAY,EAAE;iBACtE,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,yBAAyB;IAEtC,OAAO,EAAE;QACP,UAAU;QACV,oBAAoB;QACpB,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,sBAAsB;QACtB,eAAe;QACf,UAAU;QACV,YAAY;KACb;IACD,QAAQ,EAAE,CAAC,gCAAoB,EAAE,+CAA2B,CAAC;IAC7D,IAAI,EAAE,iBAAS;CAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/gmail/src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAwE;AACxE,qEAIwC;AACxC,iDAAqD;AACrD,uEAAuE;AACvE,wDAAgE;AAChE,wEAA+E;AAC/E,uFAAiF;AAEpE,QAAA,SAAS,GAAG,4BAAS,CAAC,MAAM,CAAC;IACxC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,2CAA2C;IACpD,QAAQ,EAAE,qCAAqC;IAC/C,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,4CAA4C;QAC5C,OAAO;QACP,gDAAgD;QAChD,+CAA+C;KAChD;CACF,CAAC,CAAC;AAEU,QAAA,KAAK,GAAG,IAAA,8BAAW,EAAC;IAC/B,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,+CAA+C;IACxD,UAAU,EAAE;QACV,sBAAa,CAAC,aAAa;QAC3B,sBAAa,CAAC,qBAAqB;KACpC;IACD,OAAO,EAAE;QACP,wCAAoB;QACpB,kDAAsB;QACtB,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,GAAG,EAAE,CAAC,uCAAuC;YACtD,IAAI,EAAE,iBAAS;YACf,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,aAAa,EAAE,UAAW,IAA4B,CAAC,YAAY,EAAE;iBACtE,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,yBAAyB;IAEtC,OAAO,EAAE;QACP,UAAU;QACV,oBAAoB;QACpB,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,sBAAsB;QACtB,eAAe;QACf,UAAU;QACV,YAAY;QACZ,aAAa;KACd;IACD,QAAQ,EAAE,CAAC,gCAAoB,EAAE,+CAA2B,CAAC;IAC7D,IAAI,EAAE,iBAAS;CAChB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const requestApprovalInEmail: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
2
+ receiver: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ cc: import("@activepieces/pieces-framework").ArrayProperty<false>;
4
+ bcc: import("@activepieces/pieces-framework").ArrayProperty<false>;
5
+ subject: import("@activepieces/pieces-framework").ShortTextProperty<true>;
6
+ body: import("@activepieces/pieces-framework").ShortTextProperty<true>;
7
+ reply_to: import("@activepieces/pieces-framework").ArrayProperty<false>;
8
+ sender_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
9
+ from: import("@activepieces/pieces-framework").ShortTextProperty<false>;
10
+ in_reply_to: import("@activepieces/pieces-framework").ShortTextProperty<false>;
11
+ }>;
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestApprovalInEmail = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const __1 = require("../..");
7
+ const googleapis_1 = require("googleapis");
8
+ const googleapis_common_1 = require("googleapis-common");
9
+ const mail_composer_1 = tslib_1.__importDefault(require("nodemailer/lib/mail-composer"));
10
+ const shared_1 = require("@activepieces/shared");
11
+ exports.requestApprovalInEmail = (0, pieces_framework_1.createAction)({
12
+ auth: __1.gmailAuth,
13
+ name: 'request_approval_in_mail',
14
+ displayName: 'Request Approval in Email',
15
+ description: 'Send approval request email and then wait until the email is approved or disapproved',
16
+ props: {
17
+ receiver: pieces_framework_1.Property.ShortText({
18
+ displayName: 'Receiver Email (To)',
19
+ description: 'The email address of the recipient who will receive the approval request.',
20
+ required: true,
21
+ }),
22
+ cc: pieces_framework_1.Property.Array({
23
+ displayName: 'CC Email',
24
+ description: 'The email addresses of the recipients who will receive a carbon copy of the approval request.',
25
+ required: false,
26
+ }),
27
+ bcc: pieces_framework_1.Property.Array({
28
+ displayName: 'BCC Email',
29
+ description: 'The email addresses of the recipients who will receive a blind carbon copy of the approval request.',
30
+ required: false,
31
+ }),
32
+ subject: pieces_framework_1.Property.ShortText({
33
+ displayName: 'Subject',
34
+ description: 'The subject of the approval request email.',
35
+ required: true,
36
+ }),
37
+ body: pieces_framework_1.Property.ShortText({
38
+ displayName: 'Body',
39
+ description: 'Body for the email you want to send',
40
+ required: true,
41
+ }),
42
+ reply_to: pieces_framework_1.Property.Array({
43
+ displayName: 'Reply-To Email',
44
+ description: 'Email address to set as the "Reply-To" header',
45
+ required: false,
46
+ }),
47
+ sender_name: pieces_framework_1.Property.ShortText({
48
+ displayName: 'Sender Name',
49
+ required: false,
50
+ }),
51
+ from: pieces_framework_1.Property.ShortText({
52
+ displayName: 'Sender Email',
53
+ description: "The address must be listed in your GMail account's settings",
54
+ required: false,
55
+ }),
56
+ in_reply_to: pieces_framework_1.Property.ShortText({
57
+ displayName: 'In reply to',
58
+ description: 'Reply to this Message-ID',
59
+ required: false,
60
+ }),
61
+ },
62
+ run(context) {
63
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
64
+ var _a, _b, _c, _d;
65
+ if (context.executionType === shared_1.ExecutionType.BEGIN) {
66
+ try {
67
+ const token = context.auth.access_token;
68
+ const { subject, body } = context.propsValue;
69
+ (0, shared_1.assertNotNullOrUndefined)(token, 'token');
70
+ (0, shared_1.assertNotNullOrUndefined)(context.propsValue.receiver, 'receiver');
71
+ (0, shared_1.assertNotNullOrUndefined)(subject, 'subject');
72
+ (0, shared_1.assertNotNullOrUndefined)(body, 'body');
73
+ const approvalLink = context.generateResumeUrl({
74
+ queryParams: { action: 'approve' },
75
+ });
76
+ const disapprovalLink = context.generateResumeUrl({
77
+ queryParams: { action: 'disapprove' },
78
+ });
79
+ const htmlBody = `
80
+ <div>
81
+ <p>${body}</p>
82
+ <br />
83
+ <p>
84
+ <a href="${approvalLink}" style="display: inline-block; padding: 10px 20px; margin-right: 10px; background-color: #2acc50; color: white; text-decoration: none; border-radius: 4px;">Approve</a>
85
+ <a href="${disapprovalLink}" style="display: inline-block; padding: 10px 20px; background-color: #e4172b; color: white; text-decoration: none; border-radius: 4px;">Disapprove</a>
86
+ </p>
87
+ </div>
88
+ `;
89
+ const authClient = new googleapis_common_1.OAuth2Client();
90
+ authClient.setCredentials(context.auth);
91
+ const gmail = googleapis_1.google.gmail({ version: 'v1', auth: authClient });
92
+ const subjectBase64 = Buffer.from(context.propsValue['subject']).toString('base64');
93
+ const replyTo = (_a = context.propsValue['reply_to']) === null || _a === void 0 ? void 0 : _a.filter((email) => email !== '');
94
+ const receiverEmail = context.propsValue.receiver;
95
+ const cc = (_b = context.propsValue['cc']) === null || _b === void 0 ? void 0 : _b.filter((email) => email !== '');
96
+ const bcc = (_c = context.propsValue['bcc']) === null || _c === void 0 ? void 0 : _c.filter((email) => email !== '');
97
+ const mailOptions = {
98
+ to: receiverEmail,
99
+ cc: cc ? cc.join(', ') : undefined,
100
+ bcc: bcc ? bcc.join(', ') : undefined,
101
+ subject: `=?UTF-8?B?${subjectBase64}?=`,
102
+ replyTo: replyTo ? replyTo.join(', ') : '',
103
+ // text:
104
+ // context.propsValue.body_type === 'plain_text'
105
+ // ? context.propsValue['body']
106
+ // : undefined,
107
+ html: htmlBody,
108
+ attachments: [],
109
+ };
110
+ const senderEmail = context.propsValue.from ||
111
+ (yield googleapis_1.google
112
+ .oauth2({ version: 'v2', auth: authClient })
113
+ .userinfo.get()).data.email;
114
+ if (senderEmail) {
115
+ mailOptions.from = context.propsValue.sender_name
116
+ ? `${context.propsValue['sender_name']} <${senderEmail}>`
117
+ : senderEmail;
118
+ }
119
+ let threadId = undefined;
120
+ if (context.propsValue.in_reply_to) {
121
+ mailOptions.headers = [
122
+ {
123
+ key: 'References',
124
+ value: context.propsValue.in_reply_to,
125
+ },
126
+ {
127
+ key: 'In-Reply-To',
128
+ value: context.propsValue.in_reply_to,
129
+ },
130
+ ];
131
+ const messages = yield gmail.users.messages.list({
132
+ userId: 'me',
133
+ q: `Rfc822msgid:${context.propsValue.in_reply_to}`,
134
+ });
135
+ threadId = (_d = messages.data.messages) === null || _d === void 0 ? void 0 : _d[0].threadId;
136
+ }
137
+ const mail = new mail_composer_1.default(mailOptions).compile();
138
+ mail.keepBcc = true;
139
+ const mailBody = yield mail.build();
140
+ const encodedPayload = Buffer.from(mailBody)
141
+ .toString('base64')
142
+ .replace(/\+/g, '-')
143
+ .replace(/\//g, '_');
144
+ yield gmail.users.messages.send({
145
+ userId: 'me',
146
+ requestBody: {
147
+ threadId,
148
+ raw: encodedPayload,
149
+ },
150
+ });
151
+ context.run.pause({
152
+ pauseMetadata: {
153
+ type: shared_1.PauseType.WEBHOOK,
154
+ response: {},
155
+ },
156
+ });
157
+ return {
158
+ approved: false, // default approval is false
159
+ };
160
+ }
161
+ catch (error) {
162
+ console.error('[RequestApprovalEmail] Error during BEGIN execution:', error);
163
+ throw error;
164
+ }
165
+ }
166
+ else {
167
+ const action = context.resumePayload.queryParams['action'];
168
+ const approved = action === 'approve';
169
+ return {
170
+ approved,
171
+ };
172
+ }
173
+ });
174
+ },
175
+ });
176
+ //# sourceMappingURL=request-approval-in-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-approval-in-email.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/gmail/src/lib/actions/request-approval-in-email.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,6BAAkC;AAClC,2CAAoC;AACpC,yDAAiD;AACjD,yFAAwD;AAExD,iDAI8B;AAEjB,QAAA,sBAAsB,GAAG,IAAA,+BAAY,EAAC;IACjD,IAAI,EAAE,aAAS;IACf,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,2BAA2B;IACxC,WAAW,EACT,sFAAsF;IACxF,KAAK,EAAE;QACL,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,qBAAqB;YAClC,WAAW,EACT,2EAA2E;YAC7E,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,EAAE,EAAE,2BAAQ,CAAC,KAAK,CAAC;YACjB,WAAW,EAAE,UAAU;YACvB,WAAW,EACT,+FAA+F;YACjG,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,GAAG,EAAE,2BAAQ,CAAC,KAAK,CAAC;YAClB,WAAW,EAAE,WAAW;YACxB,WAAW,EACT,qGAAqG;YACvG,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACvB,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,KAAK,CAAC;YACvB,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACvB,WAAW,EAAE,cAAc;YAC3B,WAAW,EACT,6DAA6D;YAC/D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,IAAI,OAAO,CAAC,aAAa,KAAK,sBAAa,CAAC,KAAK,EAAE,CAAC;gBAClD,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;oBAExC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;oBAE7C,IAAA,iCAAwB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACzC,IAAA,iCAAwB,EAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAClE,IAAA,iCAAwB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC7C,IAAA,iCAAwB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAEvC,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC;wBAC7C,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;qBACnC,CAAC,CAAC;oBACH,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;wBAChD,WAAW,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;qBACtC,CAAC,CAAC;oBAEH,MAAM,QAAQ,GAAG;;eAEV,IAAI;;;uBAGI,YAAY;uBACZ,eAAe;;;OAG/B,CAAC;oBAEA,MAAM,UAAU,GAAG,IAAI,gCAAY,EAAE,CAAC;oBACtC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAExC,MAAM,KAAK,GAAG,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;oBAEhE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAC/B,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAC9B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAErB,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,0CAAE,MAAM,CACpD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CACxB,CAAC;oBACF,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAClD,MAAM,EAAE,GAAG,MAAA,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,0CAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;oBACrE,MAAM,GAAG,GAAG,MAAA,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,0CAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;oBACvE,MAAM,WAAW,GAAiB;wBAChC,EAAE,EAAE,aAAa;wBACjB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;wBAClC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;wBACrC,OAAO,EAAE,aAAa,aAAa,IAAI;wBACvC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC1C,QAAQ;wBACR,kDAAkD;wBAClD,mCAAmC;wBACnC,mBAAmB;wBACnB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,EAAE;qBAChB,CAAC;oBAEF,MAAM,WAAW,GACf,OAAO,CAAC,UAAU,CAAC,IAAI;wBACvB,CACE,MAAM,mBAAM;6BACT,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;6BAC3C,QAAQ,CAAC,GAAG,EAAE,CAClB,CAAC,IAAI,CAAC,KAAK,CAAC;oBACf,IAAI,WAAW,EAAE,CAAC;wBAChB,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW;4BAC/C,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,WAAW,GAAG;4BACzD,CAAC,CAAC,WAAW,CAAC;oBAClB,CAAC;oBACD,IAAI,QAAQ,GAAG,SAAS,CAAC;oBACzB,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;wBACnC,WAAW,CAAC,OAAO,GAAG;4BACpB;gCACE,GAAG,EAAE,YAAY;gCACjB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW;6BACtC;4BACD;gCACE,GAAG,EAAE,aAAa;gCAClB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW;6BACtC;yBACF,CAAC;wBACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAC/C,MAAM,EAAE,IAAI;4BACZ,CAAC,EAAE,eAAe,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE;yBACnD,CAAC,CAAC;wBACH,QAAQ,GAAG,MAAA,QAAQ,CAAC,IAAI,CAAC,QAAQ,0CAAG,CAAC,EAAE,QAAQ,CAAC;oBAClD,CAAC;oBACD,MAAM,IAAI,GAAQ,IAAI,uBAAY,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;oBAEpC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;yBACzC,QAAQ,CAAC,QAAQ,CAAC;yBAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;yBACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACvB,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC9B,MAAM,EAAE,IAAI;wBACZ,WAAW,EAAE;4BACX,QAAQ;4BACR,GAAG,EAAE,cAAc;yBACpB;qBACF,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;wBAChB,aAAa,EAAE;4BACb,IAAI,EAAE,kBAAS,CAAC,OAAO;4BACvB,QAAQ,EAAE,EAAE;yBACb;qBACF,CAAC,CAAC;oBAEH,OAAO;wBACL,QAAQ,EAAE,KAAK,EAAE,4BAA4B;qBAC9C,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CACX,sDAAsD,EACtD,KAAK,CACN,CAAC;oBACF,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC;gBAEtC,OAAO;oBACL,QAAQ;iBACT,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}