@qawolf/api-contracts 0.40.0 → 0.47.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 (61) hide show
  1. package/dist/v1/auth/config.d.ts +14 -6
  2. package/dist/v1/auth/config.d.ts.map +1 -1
  3. package/dist/v1/auth/config.js +15 -6
  4. package/dist/v1/auth/config.js.map +1 -1
  5. package/dist/v1/email/find.d.ts +42 -0
  6. package/dist/v1/email/find.d.ts.map +1 -0
  7. package/dist/v1/email/find.js +44 -0
  8. package/dist/v1/email/find.js.map +1 -0
  9. package/dist/v1/email/get.d.ts +52 -0
  10. package/dist/v1/email/get.d.ts.map +1 -0
  11. package/dist/v1/email/get.js +19 -0
  12. package/dist/v1/email/get.js.map +1 -0
  13. package/dist/v1/email/getAttachment.d.ts +23 -0
  14. package/dist/v1/email/getAttachment.d.ts.map +1 -0
  15. package/dist/v1/email/getAttachment.js +46 -0
  16. package/dist/v1/email/getAttachment.js.map +1 -0
  17. package/dist/v1/email/listAddresses.d.ts +23 -0
  18. package/dist/v1/email/listAddresses.d.ts.map +1 -0
  19. package/dist/v1/email/listAddresses.js +33 -0
  20. package/dist/v1/email/listAddresses.js.map +1 -0
  21. package/dist/v1/email/resource.d.ts +67 -0
  22. package/dist/v1/email/resource.d.ts.map +1 -0
  23. package/dist/v1/email/resource.js +56 -0
  24. package/dist/v1/email/resource.js.map +1 -0
  25. package/dist/v1/email/send.d.ts +46 -0
  26. package/dist/v1/email/send.d.ts.map +1 -0
  27. package/dist/v1/email/send.js +62 -0
  28. package/dist/v1/email/send.js.map +1 -0
  29. package/dist/v1/flow/addTag.d.ts +8 -1
  30. package/dist/v1/flow/addTag.d.ts.map +1 -1
  31. package/dist/v1/flow/addTag.js +10 -2
  32. package/dist/v1/flow/addTag.js.map +1 -1
  33. package/dist/v1/flow/removeTag.d.ts +26 -0
  34. package/dist/v1/flow/removeTag.d.ts.map +1 -0
  35. package/dist/v1/flow/removeTag.js +37 -0
  36. package/dist/v1/flow/removeTag.js.map +1 -0
  37. package/dist/v1/flow/skippedFlows.d.ts +19 -0
  38. package/dist/v1/flow/skippedFlows.d.ts.map +1 -0
  39. package/dist/v1/flow/skippedFlows.js +15 -0
  40. package/dist/v1/flow/skippedFlows.js.map +1 -0
  41. package/dist/v1/index.d.ts +507 -2
  42. package/dist/v1/index.d.ts.map +1 -1
  43. package/dist/v1/index.js +19 -0
  44. package/dist/v1/index.js.map +1 -1
  45. package/dist/v1/issue/removeFlows.d.ts +55 -0
  46. package/dist/v1/issue/removeFlows.d.ts.map +1 -0
  47. package/dist/v1/issue/removeFlows.js +27 -0
  48. package/dist/v1/issue/removeFlows.js.map +1 -0
  49. package/dist/v1/runner/browserAction.d.ts +2 -0
  50. package/dist/v1/runner/browserAction.d.ts.map +1 -1
  51. package/dist/v1/runner/browserAction.js +1 -1
  52. package/dist/v1/runner/browserAction.js.map +1 -1
  53. package/dist/v1/runner/list.d.ts +21 -0
  54. package/dist/v1/runner/list.d.ts.map +1 -0
  55. package/dist/v1/runner/list.js +19 -0
  56. package/dist/v1/runner/list.js.map +1 -0
  57. package/dist/v1/runnerReexports.d.ts +1 -1
  58. package/dist/v1/runnerReexports.d.ts.map +1 -1
  59. package/dist/v1/runnerReexports.js +1 -1
  60. package/dist/v1/runnerReexports.js.map +1 -1
  61. package/package.json +1 -1
@@ -0,0 +1,62 @@
1
+ import { z } from "zod";
2
+ import { resource } from "../resource.js";
3
+ import { emailUrlFieldDescription, makeEmailSummaryFields, } from "./resource.js";
4
+ const recipientsSchema = z.array(z.email()).max(50);
5
+ const maxAttachments = 10;
6
+ /**
7
+ * The most base64 content the attachments of one email may carry together.
8
+ * SendGrid refuses a message over 30 MB, and base64 is the form on the wire.
9
+ */
10
+ export const maxEmailAttachmentsBase64Length = 30 * 1024 * 1024;
11
+ const attachmentsBase64Length = (attachments) => Object.values(attachments).reduce((total, content) => total + content.length, 0);
12
+ export const makeSendEmailContract = (ids) => {
13
+ const input = z
14
+ .object({
15
+ // A record rather than a list: the CLI expresses a record of strings
16
+ // as one repeatable flag, and cannot express a list of objects.
17
+ attachments: z
18
+ .record(z.string().min(1), z.base64())
19
+ .refine((attachments) => Object.keys(attachments).length <= maxAttachments, { message: `Send at most ${maxAttachments} attachments.` })
20
+ // A cap here answers with a 400 before the payload reaches the
21
+ // emailer, whatever the state of the size guard behind it.
22
+ .refine((attachments) => attachmentsBase64Length(attachments) <=
23
+ maxEmailAttachmentsBase64Length, { message: "Send at most 30 MB of attachments." })
24
+ .optional()
25
+ .describe("Files to attach, as file name to base64 content, at most 30 MB in total. The MIME type comes from the file name's extension."),
26
+ bcc: recipientsSchema.optional(),
27
+ cc: recipientsSchema.optional(),
28
+ from: z
29
+ .email()
30
+ .optional()
31
+ .describe("The workspace inbox address to send from, or a plus-suffixed form of one. Defaults to the workspace's default inbox address. See email.listAddresses."),
32
+ html: z.string().optional().describe("The HTML body."),
33
+ inReplyTo: z
34
+ .string()
35
+ .min(1)
36
+ .optional()
37
+ .describe("The id of an email of the workspace to reply to, from email.find. The reply threads under that message."),
38
+ replyTo: recipientsSchema
39
+ .optional()
40
+ .describe("Where replies should go instead of the from address."),
41
+ subject: z.string().min(1),
42
+ text: z.string().optional().describe("The plain text body."),
43
+ to: recipientsSchema.min(1),
44
+ workspaceId: ids.workspace
45
+ .optional()
46
+ .describe("The workspace to send from. Required when authenticating with an organization or user API key."),
47
+ })
48
+ .refine((email) => email.html || email.text, {
49
+ message: "Provide text, html, or both.",
50
+ });
51
+ const output = resource(makeEmailSummaryFields(), {
52
+ urlFieldDescription: emailUrlFieldDescription,
53
+ });
54
+ return {
55
+ description: "Send an email from one of the workspace's inbox addresses, for example to exercise a flow that reacts to incoming mail. Returns the sent email; read it back with email.get.",
56
+ input,
57
+ kind: "write",
58
+ name: "email.send",
59
+ output,
60
+ };
61
+ };
62
+ //# sourceMappingURL=send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/v1/email/send.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { PublicIdSchema } from "../ids.js";
3
3
  export declare const makeAddTagToFlowsContract: <FlowId extends PublicIdSchema>(ids: {
4
4
  flow: FlowId;
5
5
  }) => {
6
- readonly description: "Assign an existing tag to the selected flows. Create tags with tag.create.";
6
+ readonly description: "Assign an existing tag to the selected flows. Create tags with tag.create. Flows that already carry the tag are reported in skippedFlows.";
7
7
  readonly input: z.ZodObject<{
8
8
  flowIds: z.ZodArray<FlowId>;
9
9
  tagName: z.ZodString;
@@ -14,6 +14,13 @@ export declare const makeAddTagToFlowsContract: <FlowId extends PublicIdSchema>(
14
14
  color: z.ZodString;
15
15
  name: z.ZodString;
16
16
  url: z.ZodURL;
17
+ skippedFlows: z.ZodArray<z.ZodObject<{
18
+ flowId: FlowId;
19
+ name: z.ZodString;
20
+ reason: z.ZodEnum<{
21
+ "already-tagged": "already-tagged";
22
+ }>;
23
+ }, z.core.$strip>>;
17
24
  }, z.core.$strip>;
18
25
  };
19
26
  //# sourceMappingURL=addTag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addTag.d.ts","sourceRoot":"","sources":["../../../src/v1/flow/addTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,eAAO,MAAM,yBAAyB,GAAI,MAAM,SAAS,cAAc,EAAE,KAAK;IAC5E,IAAI,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;CAmCA,CAAC"}
1
+ {"version":3,"file":"addTag.d.ts","sourceRoot":"","sources":["../../../src/v1/flow/addTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,eAAO,MAAM,yBAAyB,GAAI,MAAM,SAAS,cAAc,EAAE,KAAK;IAC5E,IAAI,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;;;;;;;;CA6CA,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { makeTagResourceSchema } from "../tag/index.js";
3
+ import { makeSkippedFlowsSchema } from "./skippedFlows.js";
3
4
  export const makeAddTagToFlowsContract = (ids) => {
4
5
  const input = z.object({
5
6
  flowIds: z
@@ -17,9 +18,16 @@ export const makeAddTagToFlowsContract = (ids) => {
17
18
  .min(1)
18
19
  .describe("The name of an existing tag on the caller's team."),
19
20
  });
20
- const output = makeTagResourceSchema();
21
+ const output = makeTagResourceSchema().extend({
22
+ skippedFlows: makeSkippedFlowsSchema(ids, {
23
+ description: "Requested flows that already carried the tag, so nothing changed for them.",
24
+ reason: z
25
+ .enum(["already-tagged"])
26
+ .describe('Why the flow was skipped: "already-tagged" means the flow already carried the tag.'),
27
+ }),
28
+ });
21
29
  return {
22
- description: "Assign an existing tag to the selected flows. Create tags with tag.create.",
30
+ description: "Assign an existing tag to the selected flows. Create tags with tag.create. Flows that already carry the tag are reported in skippedFlows.",
23
31
  input,
24
32
  kind: "write",
25
33
  name: "flow.addTag",
@@ -1 +1 @@
1
- {"version":3,"file":"addTag.js","sourceRoot":"","sources":["../../../src/v1/flow/addTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAgC,GAExE,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;aACf,GAAG,CAAC,CAAC,CAAC;YACP,sDAAsD;aACrD,GAAG,CAAC,GAAG,CAAC;aACR,MAAM,CACL,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EACrD,wBAAwB,CACzB;aACA,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,sEAAsE;QACtE,8DAA8D;QAC9D,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,mDAAmD,CAAC;KACjE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAEvC,OAAO;QACL,WAAW,EACT,4EAA4E;QAC9E,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,aAAa;QACnB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"addTag.js","sourceRoot":"","sources":["../../../src/v1/flow/addTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAgC,GAExE,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;aACf,GAAG,CAAC,CAAC,CAAC;YACP,sDAAsD;aACrD,GAAG,CAAC,GAAG,CAAC;aACR,MAAM,CACL,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EACrD,wBAAwB,CACzB;aACA,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,sEAAsE;QACtE,8DAA8D;QAC9D,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,mDAAmD,CAAC;KACjE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAC5C,YAAY,EAAE,sBAAsB,CAAC,GAAG,EAAE;YACxC,WAAW,EACT,4EAA4E;YAC9E,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;iBACxB,QAAQ,CACP,oFAAoF,CACrF;SACJ,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EACT,2IAA2I;QAC7I,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,aAAa;QACnB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ import type { PublicIdSchema } from "../ids.js";
3
+ export declare const makeRemoveTagFromFlowsContract: <FlowId extends PublicIdSchema>(ids: {
4
+ flow: FlowId;
5
+ }) => {
6
+ readonly description: "Remove a tag from the selected flows. Succeeds whether or not each flow carried the tag; the flows that did not are reported in skippedFlows.";
7
+ readonly input: z.ZodObject<{
8
+ flowIds: z.ZodArray<FlowId>;
9
+ tagName: z.ZodString;
10
+ }, z.core.$strip>;
11
+ readonly kind: "write";
12
+ readonly name: "flow.removeTag";
13
+ readonly output: z.ZodObject<{
14
+ color: z.ZodString;
15
+ name: z.ZodString;
16
+ url: z.ZodURL;
17
+ skippedFlows: z.ZodArray<z.ZodObject<{
18
+ flowId: FlowId;
19
+ name: z.ZodString;
20
+ reason: z.ZodEnum<{
21
+ "not-tagged": "not-tagged";
22
+ }>;
23
+ }, z.core.$strip>>;
24
+ }, z.core.$strip>;
25
+ };
26
+ //# sourceMappingURL=removeTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeTag.d.ts","sourceRoot":"","sources":["../../../src/v1/flow/removeTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,eAAO,MAAM,8BAA8B,GACzC,MAAM,SAAS,cAAc,EAC7B,KAAK;IACL,IAAI,EAAE,MAAM,CAAC;CACd;;;;;;;;;;;;;;;;;;;;CA6CA,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ import { makeTagResourceSchema } from "../tag/index.js";
3
+ import { makeSkippedFlowsSchema } from "./skippedFlows.js";
4
+ export const makeRemoveTagFromFlowsContract = (ids) => {
5
+ const input = z.object({
6
+ flowIds: z
7
+ .array(ids.flow)
8
+ .min(1)
9
+ // Matches the flow.addTag selection cap.
10
+ .max(300)
11
+ .refine((flowIds) => new Set(flowIds).size === flowIds.length, "flowIds must be unique")
12
+ .describe("The flows that lose the tag."),
13
+ // A lookup, not an insert: a name that cannot exist simply misses and
14
+ // returns the not-found error, so no format rules apply here.
15
+ tagName: z
16
+ .string()
17
+ .trim()
18
+ .min(1)
19
+ .describe("The name of an existing tag on the caller's team."),
20
+ });
21
+ const output = makeTagResourceSchema().extend({
22
+ skippedFlows: makeSkippedFlowsSchema(ids, {
23
+ description: "Requested flows that did not carry the tag, so nothing changed for them.",
24
+ reason: z
25
+ .enum(["not-tagged"])
26
+ .describe('Why the flow was skipped: "not-tagged" means the flow did not carry the tag.'),
27
+ }),
28
+ });
29
+ return {
30
+ description: "Remove a tag from the selected flows. Succeeds whether or not each flow carried the tag; the flows that did not are reported in skippedFlows.",
31
+ input,
32
+ kind: "write",
33
+ name: "flow.removeTag",
34
+ output,
35
+ };
36
+ };
37
+ //# sourceMappingURL=removeTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeTag.js","sourceRoot":"","sources":["../../../src/v1/flow/removeTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAE5C,GAED,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;aACf,GAAG,CAAC,CAAC,CAAC;YACP,yCAAyC;aACxC,GAAG,CAAC,GAAG,CAAC;aACR,MAAM,CACL,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EACrD,wBAAwB,CACzB;aACA,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,sEAAsE;QACtE,8DAA8D;QAC9D,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,mDAAmD,CAAC;KACjE,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAC5C,YAAY,EAAE,sBAAsB,CAAC,GAAG,EAAE;YACxC,WAAW,EACT,0EAA0E;YAC5E,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;iBACpB,QAAQ,CACP,8EAA8E,CAC/E;SACJ,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EACT,+IAA+I;QACjJ,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+ import type { PublicIdSchema } from "../ids.js";
3
+ /**
4
+ * The flows a tag write left untouched, each with the reason.
5
+ *
6
+ * flow.addTag and flow.removeTag both report their receipt through this
7
+ * factory, so an agent parses one row shape for the pair.
8
+ */
9
+ export declare const makeSkippedFlowsSchema: <FlowId extends PublicIdSchema, ReasonSchema extends z.ZodType>(ids: {
10
+ flow: FlowId;
11
+ }, { description, reason }: {
12
+ description: string;
13
+ reason: ReasonSchema;
14
+ }) => z.ZodArray<z.ZodObject<{
15
+ flowId: FlowId;
16
+ name: z.ZodString;
17
+ reason: ReasonSchema;
18
+ }, z.core.$strip>>;
19
+ //# sourceMappingURL=skippedFlows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skippedFlows.d.ts","sourceRoot":"","sources":["../../../src/v1/flow/skippedFlows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,SAAS,cAAc,EAC7B,YAAY,SAAS,CAAC,CAAC,OAAO,EAE9B,KAAK;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACrB,yBAAyB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE;;;;kBAU9C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * The flows a tag write left untouched, each with the reason.
4
+ *
5
+ * flow.addTag and flow.removeTag both report their receipt through this
6
+ * factory, so an agent parses one row shape for the pair.
7
+ */
8
+ export const makeSkippedFlowsSchema = (ids, { description, reason }) => z
9
+ .array(z.object({
10
+ flowId: ids.flow,
11
+ name: z.string().describe("The name of the flow."),
12
+ reason,
13
+ }))
14
+ .describe(description);
15
+ //# sourceMappingURL=skippedFlows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skippedFlows.js","sourceRoot":"","sources":["../../../src/v1/flow/skippedFlows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAIpC,GAAqB,EACrB,EAAE,WAAW,EAAE,MAAM,EAAiD,EACtE,EAAE,CACF,CAAC;KACE,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;IACP,MAAM,EAAE,GAAG,CAAC,IAAI;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAClD,MAAM;CACP,CAAC,CACH;KACA,QAAQ,CAAC,WAAW,CAAC,CAAC"}